Множественная выборка сглаживания

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Множественная выборка сглаживания или мультисемплинг (англ. Multisample anti-aliasing, MSAA) — одна из наиболее простых механик сглаживания, пришедшая на смену избыточной выборке сглаживания и дающая схожий эффект при меньшем потреблении ресурсов.

Описание

В процессе растеризации графического примитива (треугольника, линии или точки) без сглаживания GPU определяет цвет каждого пикселя на основе выборки (англ. sample) из центра этого пикселя. Если центр пикселя лежит внутри примитива, то этот пиксель закрашивается цветом выборки.

Мультисемплинг увеличивает число дискретных выборок на пиксель, но только для краев объекта, в 2N раз. Так, при мультисемплинге 4X каждый крайний пиксель каждого объекта будет занимать 4 пикселя в экранном буфере, которые называются субпикселями.

Если очередная выборка оказывается внутри растеризуемого примитива, её результат сохраняется в соответствующий субпиксель. В остальных случаях результат выборки игнорируется. После того, как все нужные выборки сохранены в экранном буфере, итоговый цвет пикселя определяется как усреднённый цвет всех соответствующих ему субпикселей:

result = (sample(0) + sample(1) + … + sample(n −1)) / n

где:

result — итоговый цвет пикселя,
n — количество выборок на пиксель,
sample(i) — цвет i-й выборки.

Отличие данного способа сглаживания от SSAA в том, что 4-х кратный экранный буфер используется лишь для пикселей, показывающих края какого-либо объекта, сглаживание «лесенок» на которых и является главной задачей. Это позволяет увеличить производительность, но не работает на прозрачных полигонах, а также несовместимо с методом отложенного освещения в DirectX 9 и младше.

См. также

Примечания